#!usr/bin/env node

const Koa = require('koa');

const app = new Koa();

//中间件  middleware
////use:加载中间件
app.use(async (ctx,next)=>{
  //ctx.body = 'hello world';//body是响应体
  
  //通过响应头传：
  //next();//如果没有next，则下面的use不会执行
  //const cost = ctx.response.header.cost;
  
  //通过return传：
  //const cost = await next()

  //通过ctx传：
  next()
  const cost = ctx.cost;


  console.log(`${ctx.method} ${ctx.url} ${cost}`)
})

app.use((ctx,next)=>{
  const start = Date.now();
  next();
  const end = Date.now();

  //ctx.set('cost', end-start);//响应头里传
  
  //return (end-start);//return传
  
  ctx.cost = end-start;//ctx传

})

app.use((ctx,next)=>{
  console.log('hello');
})

app.listen(3000);
console.log('hello koa')




